package treino;

import pre_processamento.Dados;
import som.Rede;

public class Treino {

	private Rede rede;
	private Dados dados;

	private double taxaAprendizagem;

	public Treino(Rede rede, Dados dados) {

		this.rede = rede;
		this.dados = dados;
	}

	public void treinaRede() {

		taxaAprendizagem = 0.5;

		while (taxaAprendizagem > 0.01) {
			
			for (int i = 0; i < dados.quantidadeDados(); i++) {

				int classeCorreta = dados.obtemClasse(i);
				double[] coordenadasDado = dados.obtemCoordenadas(i);

				rede.treinaRede(classeCorreta, coordenadasDado, taxaAprendizagem);
			}
			
			taxaAprendizagem = taxaAprendizagem * 0.9;
		}
	}
}
